/******************************************************************************
* 文件名称: print.h
* 内容摘要: 屏幕打印头文件
* 创建者の: 孔佳伟
* 个人主页: https://gitee.com/thin-wind/jump
* 修改记录: 
******************************************************************************/

#ifndef __PRINT_H_
#define __PRINT_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <common.h>

#define SCREEN_WIDTH    80  // 窗口宽
#define SCREEN_HEIGHT   25  // 窗口高

// 字体颜色
typedef enum E_FONT_COLOR
{
    E_FONT_GRAY   = 0x07,  // 灰色
    E_FONT_BLUE   = 0x09,  // 蓝色
    E_FONT_GREEN  = 0x0A,  // 绿色
    E_FONT_RED    = 0x0C,  // 红色
    E_FONT_YELLOW = 0x0E,  // 黄色
    E_FONT_WHITE  = 0x0F,  // 白色
} E_FONT_COLOR;

/******************************************************************************
* 函数名称: E_RET SetCursorPos(U16 x, U16 y)
* 功能说明: 设置光标位置
* 输入参数: U16 x		--横坐标
    　　　　U16 y       --纵坐标
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 无
******************************************************************************/
E_RET SetCursorPos(U16 x, U16 y);

/******************************************************************************
* 函数名称: void SetFontColor(E_FONT_COLOR color)
* 功能说明: 设置字体颜色
* 输入参数: E_FONT_COLOR color --字体颜色
* 输出参数: 无
* 函数返回: 无
* 其它说明: 无
******************************************************************************/
void SetFontColor(E_FONT_COLOR color);

/******************************************************************************
* 函数名称: void ClearScreen(void)
* 功能说明: 清空屏幕
* 输入参数: 无
* 输出参数: 无
* 函数返回: 无
* 其它说明: 无
******************************************************************************/
void ClearScreen(void);

/******************************************************************************
* 函数名称: E_RET printk(const char * fmt, ...)
* 功能说明: 通用打印
* 输入参数: const char * fmt    --输出格式, 目前支持的格式: 
                                        %c: 字符
                                        %s: 字符串 
                                        %x: 十六进制 
                                        %d: 十进制
    　　　　...                 --可变参数  
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 无
******************************************************************************/
E_RET printk(const char * fmt, ...);


#ifdef __cplusplus
}
#endif

#endif
